package ruifight.member.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class AccountRecordExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public AccountRecordExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andAccountRecordIdIsNull() {
            addCriterion("accountRecordId is null");
            return (Criteria) this;
        }

        public Criteria andAccountRecordIdIsNotNull() {
            addCriterion("accountRecordId is not null");
            return (Criteria) this;
        }

        public Criteria andAccountRecordIdEqualTo(Long value) {
            addCriterion("accountRecordId =", value, "accountRecordId");
            return (Criteria) this;
        }

        public Criteria andAccountRecordIdNotEqualTo(Long value) {
            addCriterion("accountRecordId <>", value, "accountRecordId");
            return (Criteria) this;
        }

        public Criteria andAccountRecordIdGreaterThan(Long value) {
            addCriterion("accountRecordId >", value, "accountRecordId");
            return (Criteria) this;
        }

        public Criteria andAccountRecordIdGreaterThanOrEqualTo(Long value) {
            addCriterion("accountRecordId >=", value, "accountRecordId");
            return (Criteria) this;
        }

        public Criteria andAccountRecordIdLessThan(Long value) {
            addCriterion("accountRecordId <", value, "accountRecordId");
            return (Criteria) this;
        }

        public Criteria andAccountRecordIdLessThanOrEqualTo(Long value) {
            addCriterion("accountRecordId <=", value, "accountRecordId");
            return (Criteria) this;
        }

        public Criteria andAccountRecordIdIn(List<Long> values) {
            addCriterion("accountRecordId in", values, "accountRecordId");
            return (Criteria) this;
        }

        public Criteria andAccountRecordIdNotIn(List<Long> values) {
            addCriterion("accountRecordId not in", values, "accountRecordId");
            return (Criteria) this;
        }

        public Criteria andAccountRecordIdBetween(Long value1, Long value2) {
            addCriterion("accountRecordId between", value1, value2, "accountRecordId");
            return (Criteria) this;
        }

        public Criteria andAccountRecordIdNotBetween(Long value1, Long value2) {
            addCriterion("accountRecordId not between", value1, value2, "accountRecordId");
            return (Criteria) this;
        }

        public Criteria andAccountCodeIsNull() {
            addCriterion("accountCode is null");
            return (Criteria) this;
        }

        public Criteria andAccountCodeIsNotNull() {
            addCriterion("accountCode is not null");
            return (Criteria) this;
        }

        public Criteria andAccountCodeEqualTo(String value) {
            addCriterion("accountCode =", value, "accountCode");
            return (Criteria) this;
        }

        public Criteria andAccountCodeNotEqualTo(String value) {
            addCriterion("accountCode <>", value, "accountCode");
            return (Criteria) this;
        }

        public Criteria andAccountCodeGreaterThan(String value) {
            addCriterion("accountCode >", value, "accountCode");
            return (Criteria) this;
        }

        public Criteria andAccountCodeGreaterThanOrEqualTo(String value) {
            addCriterion("accountCode >=", value, "accountCode");
            return (Criteria) this;
        }

        public Criteria andAccountCodeLessThan(String value) {
            addCriterion("accountCode <", value, "accountCode");
            return (Criteria) this;
        }

        public Criteria andAccountCodeLessThanOrEqualTo(String value) {
            addCriterion("accountCode <=", value, "accountCode");
            return (Criteria) this;
        }

        public Criteria andAccountCodeLike(String value) {
            addCriterion("accountCode like", value, "accountCode");
            return (Criteria) this;
        }

        public Criteria andAccountCodeNotLike(String value) {
            addCriterion("accountCode not like", value, "accountCode");
            return (Criteria) this;
        }

        public Criteria andAccountCodeIn(List<String> values) {
            addCriterion("accountCode in", values, "accountCode");
            return (Criteria) this;
        }

        public Criteria andAccountCodeNotIn(List<String> values) {
            addCriterion("accountCode not in", values, "accountCode");
            return (Criteria) this;
        }

        public Criteria andAccountCodeBetween(String value1, String value2) {
            addCriterion("accountCode between", value1, value2, "accountCode");
            return (Criteria) this;
        }

        public Criteria andAccountCodeNotBetween(String value1, String value2) {
            addCriterion("accountCode not between", value1, value2, "accountCode");
            return (Criteria) this;
        }

        public Criteria andDraweeIdIsNull() {
            addCriterion("DraweeId is null");
            return (Criteria) this;
        }

        public Criteria andDraweeIdIsNotNull() {
            addCriterion("DraweeId is not null");
            return (Criteria) this;
        }

        public Criteria andDraweeIdEqualTo(Long value) {
            addCriterion("DraweeId =", value, "draweeId");
            return (Criteria) this;
        }

        public Criteria andDraweeIdNotEqualTo(Long value) {
            addCriterion("DraweeId <>", value, "draweeId");
            return (Criteria) this;
        }

        public Criteria andDraweeIdGreaterThan(Long value) {
            addCriterion("DraweeId >", value, "draweeId");
            return (Criteria) this;
        }

        public Criteria andDraweeIdGreaterThanOrEqualTo(Long value) {
            addCriterion("DraweeId >=", value, "draweeId");
            return (Criteria) this;
        }

        public Criteria andDraweeIdLessThan(Long value) {
            addCriterion("DraweeId <", value, "draweeId");
            return (Criteria) this;
        }

        public Criteria andDraweeIdLessThanOrEqualTo(Long value) {
            addCriterion("DraweeId <=", value, "draweeId");
            return (Criteria) this;
        }

        public Criteria andDraweeIdIn(List<Long> values) {
            addCriterion("DraweeId in", values, "draweeId");
            return (Criteria) this;
        }

        public Criteria andDraweeIdNotIn(List<Long> values) {
            addCriterion("DraweeId not in", values, "draweeId");
            return (Criteria) this;
        }

        public Criteria andDraweeIdBetween(Long value1, Long value2) {
            addCriterion("DraweeId between", value1, value2, "draweeId");
            return (Criteria) this;
        }

        public Criteria andDraweeIdNotBetween(Long value1, Long value2) {
            addCriterion("DraweeId not between", value1, value2, "draweeId");
            return (Criteria) this;
        }

        public Criteria andDraweeNameIsNull() {
            addCriterion("DraweeName is null");
            return (Criteria) this;
        }

        public Criteria andDraweeNameIsNotNull() {
            addCriterion("DraweeName is not null");
            return (Criteria) this;
        }

        public Criteria andDraweeNameEqualTo(String value) {
            addCriterion("DraweeName =", value, "draweeName");
            return (Criteria) this;
        }

        public Criteria andDraweeNameNotEqualTo(String value) {
            addCriterion("DraweeName <>", value, "draweeName");
            return (Criteria) this;
        }

        public Criteria andDraweeNameGreaterThan(String value) {
            addCriterion("DraweeName >", value, "draweeName");
            return (Criteria) this;
        }

        public Criteria andDraweeNameGreaterThanOrEqualTo(String value) {
            addCriterion("DraweeName >=", value, "draweeName");
            return (Criteria) this;
        }

        public Criteria andDraweeNameLessThan(String value) {
            addCriterion("DraweeName <", value, "draweeName");
            return (Criteria) this;
        }

        public Criteria andDraweeNameLessThanOrEqualTo(String value) {
            addCriterion("DraweeName <=", value, "draweeName");
            return (Criteria) this;
        }

        public Criteria andDraweeNameLike(String value) {
            addCriterion("DraweeName like", value, "draweeName");
            return (Criteria) this;
        }

        public Criteria andDraweeNameNotLike(String value) {
            addCriterion("DraweeName not like", value, "draweeName");
            return (Criteria) this;
        }

        public Criteria andDraweeNameIn(List<String> values) {
            addCriterion("DraweeName in", values, "draweeName");
            return (Criteria) this;
        }

        public Criteria andDraweeNameNotIn(List<String> values) {
            addCriterion("DraweeName not in", values, "draweeName");
            return (Criteria) this;
        }

        public Criteria andDraweeNameBetween(String value1, String value2) {
            addCriterion("DraweeName between", value1, value2, "draweeName");
            return (Criteria) this;
        }

        public Criteria andDraweeNameNotBetween(String value1, String value2) {
            addCriterion("DraweeName not between", value1, value2, "draweeName");
            return (Criteria) this;
        }

        public Criteria andPayeeIdIsNull() {
            addCriterion("PayeeId is null");
            return (Criteria) this;
        }

        public Criteria andPayeeIdIsNotNull() {
            addCriterion("PayeeId is not null");
            return (Criteria) this;
        }

        public Criteria andPayeeIdEqualTo(Long value) {
            addCriterion("PayeeId =", value, "payeeId");
            return (Criteria) this;
        }

        public Criteria andPayeeIdNotEqualTo(Long value) {
            addCriterion("PayeeId <>", value, "payeeId");
            return (Criteria) this;
        }

        public Criteria andPayeeIdGreaterThan(Long value) {
            addCriterion("PayeeId >", value, "payeeId");
            return (Criteria) this;
        }

        public Criteria andPayeeIdGreaterThanOrEqualTo(Long value) {
            addCriterion("PayeeId >=", value, "payeeId");
            return (Criteria) this;
        }

        public Criteria andPayeeIdLessThan(Long value) {
            addCriterion("PayeeId <", value, "payeeId");
            return (Criteria) this;
        }

        public Criteria andPayeeIdLessThanOrEqualTo(Long value) {
            addCriterion("PayeeId <=", value, "payeeId");
            return (Criteria) this;
        }

        public Criteria andPayeeIdIn(List<Long> values) {
            addCriterion("PayeeId in", values, "payeeId");
            return (Criteria) this;
        }

        public Criteria andPayeeIdNotIn(List<Long> values) {
            addCriterion("PayeeId not in", values, "payeeId");
            return (Criteria) this;
        }

        public Criteria andPayeeIdBetween(Long value1, Long value2) {
            addCriterion("PayeeId between", value1, value2, "payeeId");
            return (Criteria) this;
        }

        public Criteria andPayeeIdNotBetween(Long value1, Long value2) {
            addCriterion("PayeeId not between", value1, value2, "payeeId");
            return (Criteria) this;
        }

        public Criteria andPayeeNameIsNull() {
            addCriterion("PayeeName is null");
            return (Criteria) this;
        }

        public Criteria andPayeeNameIsNotNull() {
            addCriterion("PayeeName is not null");
            return (Criteria) this;
        }

        public Criteria andPayeeNameEqualTo(String value) {
            addCriterion("PayeeName =", value, "payeeName");
            return (Criteria) this;
        }

        public Criteria andPayeeNameNotEqualTo(String value) {
            addCriterion("PayeeName <>", value, "payeeName");
            return (Criteria) this;
        }

        public Criteria andPayeeNameGreaterThan(String value) {
            addCriterion("PayeeName >", value, "payeeName");
            return (Criteria) this;
        }

        public Criteria andPayeeNameGreaterThanOrEqualTo(String value) {
            addCriterion("PayeeName >=", value, "payeeName");
            return (Criteria) this;
        }

        public Criteria andPayeeNameLessThan(String value) {
            addCriterion("PayeeName <", value, "payeeName");
            return (Criteria) this;
        }

        public Criteria andPayeeNameLessThanOrEqualTo(String value) {
            addCriterion("PayeeName <=", value, "payeeName");
            return (Criteria) this;
        }

        public Criteria andPayeeNameLike(String value) {
            addCriterion("PayeeName like", value, "payeeName");
            return (Criteria) this;
        }

        public Criteria andPayeeNameNotLike(String value) {
            addCriterion("PayeeName not like", value, "payeeName");
            return (Criteria) this;
        }

        public Criteria andPayeeNameIn(List<String> values) {
            addCriterion("PayeeName in", values, "payeeName");
            return (Criteria) this;
        }

        public Criteria andPayeeNameNotIn(List<String> values) {
            addCriterion("PayeeName not in", values, "payeeName");
            return (Criteria) this;
        }

        public Criteria andPayeeNameBetween(String value1, String value2) {
            addCriterion("PayeeName between", value1, value2, "payeeName");
            return (Criteria) this;
        }

        public Criteria andPayeeNameNotBetween(String value1, String value2) {
            addCriterion("PayeeName not between", value1, value2, "payeeName");
            return (Criteria) this;
        }

        public Criteria andPayeeShopIdIsNull() {
            addCriterion("PayeeShopId is null");
            return (Criteria) this;
        }

        public Criteria andPayeeShopIdIsNotNull() {
            addCriterion("PayeeShopId is not null");
            return (Criteria) this;
        }

        public Criteria andPayeeShopIdEqualTo(Long value) {
            addCriterion("PayeeShopId =", value, "payeeShopId");
            return (Criteria) this;
        }

        public Criteria andPayeeShopIdNotEqualTo(Long value) {
            addCriterion("PayeeShopId <>", value, "payeeShopId");
            return (Criteria) this;
        }

        public Criteria andPayeeShopIdGreaterThan(Long value) {
            addCriterion("PayeeShopId >", value, "payeeShopId");
            return (Criteria) this;
        }

        public Criteria andPayeeShopIdGreaterThanOrEqualTo(Long value) {
            addCriterion("PayeeShopId >=", value, "payeeShopId");
            return (Criteria) this;
        }

        public Criteria andPayeeShopIdLessThan(Long value) {
            addCriterion("PayeeShopId <", value, "payeeShopId");
            return (Criteria) this;
        }

        public Criteria andPayeeShopIdLessThanOrEqualTo(Long value) {
            addCriterion("PayeeShopId <=", value, "payeeShopId");
            return (Criteria) this;
        }

        public Criteria andPayeeShopIdIn(List<Long> values) {
            addCriterion("PayeeShopId in", values, "payeeShopId");
            return (Criteria) this;
        }

        public Criteria andPayeeShopIdNotIn(List<Long> values) {
            addCriterion("PayeeShopId not in", values, "payeeShopId");
            return (Criteria) this;
        }

        public Criteria andPayeeShopIdBetween(Long value1, Long value2) {
            addCriterion("PayeeShopId between", value1, value2, "payeeShopId");
            return (Criteria) this;
        }

        public Criteria andPayeeShopIdNotBetween(Long value1, Long value2) {
            addCriterion("PayeeShopId not between", value1, value2, "payeeShopId");
            return (Criteria) this;
        }

        public Criteria andPayeeShopNameIsNull() {
            addCriterion("PayeeShopName is null");
            return (Criteria) this;
        }

        public Criteria andPayeeShopNameIsNotNull() {
            addCriterion("PayeeShopName is not null");
            return (Criteria) this;
        }

        public Criteria andPayeeShopNameEqualTo(String value) {
            addCriterion("PayeeShopName =", value, "payeeShopName");
            return (Criteria) this;
        }

        public Criteria andPayeeShopNameNotEqualTo(String value) {
            addCriterion("PayeeShopName <>", value, "payeeShopName");
            return (Criteria) this;
        }

        public Criteria andPayeeShopNameGreaterThan(String value) {
            addCriterion("PayeeShopName >", value, "payeeShopName");
            return (Criteria) this;
        }

        public Criteria andPayeeShopNameGreaterThanOrEqualTo(String value) {
            addCriterion("PayeeShopName >=", value, "payeeShopName");
            return (Criteria) this;
        }

        public Criteria andPayeeShopNameLessThan(String value) {
            addCriterion("PayeeShopName <", value, "payeeShopName");
            return (Criteria) this;
        }

        public Criteria andPayeeShopNameLessThanOrEqualTo(String value) {
            addCriterion("PayeeShopName <=", value, "payeeShopName");
            return (Criteria) this;
        }

        public Criteria andPayeeShopNameLike(String value) {
            addCriterion("PayeeShopName like", value, "payeeShopName");
            return (Criteria) this;
        }

        public Criteria andPayeeShopNameNotLike(String value) {
            addCriterion("PayeeShopName not like", value, "payeeShopName");
            return (Criteria) this;
        }

        public Criteria andPayeeShopNameIn(List<String> values) {
            addCriterion("PayeeShopName in", values, "payeeShopName");
            return (Criteria) this;
        }

        public Criteria andPayeeShopNameNotIn(List<String> values) {
            addCriterion("PayeeShopName not in", values, "payeeShopName");
            return (Criteria) this;
        }

        public Criteria andPayeeShopNameBetween(String value1, String value2) {
            addCriterion("PayeeShopName between", value1, value2, "payeeShopName");
            return (Criteria) this;
        }

        public Criteria andPayeeShopNameNotBetween(String value1, String value2) {
            addCriterion("PayeeShopName not between", value1, value2, "payeeShopName");
            return (Criteria) this;
        }

        public Criteria andPayableIsNull() {
            addCriterion("payable is null");
            return (Criteria) this;
        }

        public Criteria andPayableIsNotNull() {
            addCriterion("payable is not null");
            return (Criteria) this;
        }

        public Criteria andPayableEqualTo(String value) {
            addCriterion("payable =", value, "payable");
            return (Criteria) this;
        }

        public Criteria andPayableNotEqualTo(String value) {
            addCriterion("payable <>", value, "payable");
            return (Criteria) this;
        }

        public Criteria andPayableGreaterThan(String value) {
            addCriterion("payable >", value, "payable");
            return (Criteria) this;
        }

        public Criteria andPayableGreaterThanOrEqualTo(String value) {
            addCriterion("payable >=", value, "payable");
            return (Criteria) this;
        }

        public Criteria andPayableLessThan(String value) {
            addCriterion("payable <", value, "payable");
            return (Criteria) this;
        }

        public Criteria andPayableLessThanOrEqualTo(String value) {
            addCriterion("payable <=", value, "payable");
            return (Criteria) this;
        }

        public Criteria andPayableLike(String value) {
            addCriterion("payable like", value, "payable");
            return (Criteria) this;
        }

        public Criteria andPayableNotLike(String value) {
            addCriterion("payable not like", value, "payable");
            return (Criteria) this;
        }

        public Criteria andPayableIn(List<String> values) {
            addCriterion("payable in", values, "payable");
            return (Criteria) this;
        }

        public Criteria andPayableNotIn(List<String> values) {
            addCriterion("payable not in", values, "payable");
            return (Criteria) this;
        }

        public Criteria andPayableBetween(String value1, String value2) {
            addCriterion("payable between", value1, value2, "payable");
            return (Criteria) this;
        }

        public Criteria andPayableNotBetween(String value1, String value2) {
            addCriterion("payable not between", value1, value2, "payable");
            return (Criteria) this;
        }

        public Criteria andPaymentIsNull() {
            addCriterion("payment is null");
            return (Criteria) this;
        }

        public Criteria andPaymentIsNotNull() {
            addCriterion("payment is not null");
            return (Criteria) this;
        }

        public Criteria andPaymentEqualTo(String value) {
            addCriterion("payment =", value, "payment");
            return (Criteria) this;
        }

        public Criteria andPaymentNotEqualTo(String value) {
            addCriterion("payment <>", value, "payment");
            return (Criteria) this;
        }

        public Criteria andPaymentGreaterThan(String value) {
            addCriterion("payment >", value, "payment");
            return (Criteria) this;
        }

        public Criteria andPaymentGreaterThanOrEqualTo(String value) {
            addCriterion("payment >=", value, "payment");
            return (Criteria) this;
        }

        public Criteria andPaymentLessThan(String value) {
            addCriterion("payment <", value, "payment");
            return (Criteria) this;
        }

        public Criteria andPaymentLessThanOrEqualTo(String value) {
            addCriterion("payment <=", value, "payment");
            return (Criteria) this;
        }

        public Criteria andPaymentLike(String value) {
            addCriterion("payment like", value, "payment");
            return (Criteria) this;
        }

        public Criteria andPaymentNotLike(String value) {
            addCriterion("payment not like", value, "payment");
            return (Criteria) this;
        }

        public Criteria andPaymentIn(List<String> values) {
            addCriterion("payment in", values, "payment");
            return (Criteria) this;
        }

        public Criteria andPaymentNotIn(List<String> values) {
            addCriterion("payment not in", values, "payment");
            return (Criteria) this;
        }

        public Criteria andPaymentBetween(String value1, String value2) {
            addCriterion("payment between", value1, value2, "payment");
            return (Criteria) this;
        }

        public Criteria andPaymentNotBetween(String value1, String value2) {
            addCriterion("payment not between", value1, value2, "payment");
            return (Criteria) this;
        }

        public Criteria andDiscountIsNull() {
            addCriterion("discount is null");
            return (Criteria) this;
        }

        public Criteria andDiscountIsNotNull() {
            addCriterion("discount is not null");
            return (Criteria) this;
        }

        public Criteria andDiscountEqualTo(String value) {
            addCriterion("discount =", value, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountNotEqualTo(String value) {
            addCriterion("discount <>", value, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountGreaterThan(String value) {
            addCriterion("discount >", value, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountGreaterThanOrEqualTo(String value) {
            addCriterion("discount >=", value, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountLessThan(String value) {
            addCriterion("discount <", value, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountLessThanOrEqualTo(String value) {
            addCriterion("discount <=", value, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountLike(String value) {
            addCriterion("discount like", value, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountNotLike(String value) {
            addCriterion("discount not like", value, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountIn(List<String> values) {
            addCriterion("discount in", values, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountNotIn(List<String> values) {
            addCriterion("discount not in", values, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountBetween(String value1, String value2) {
            addCriterion("discount between", value1, value2, "discount");
            return (Criteria) this;
        }

        public Criteria andDiscountNotBetween(String value1, String value2) {
            addCriterion("discount not between", value1, value2, "discount");
            return (Criteria) this;
        }

        public Criteria andAttr1IsNull() {
            addCriterion("attr1 is null");
            return (Criteria) this;
        }

        public Criteria andAttr1IsNotNull() {
            addCriterion("attr1 is not null");
            return (Criteria) this;
        }

        public Criteria andAttr1EqualTo(String value) {
            addCriterion("attr1 =", value, "attr1");
            return (Criteria) this;
        }

        public Criteria andAttr1NotEqualTo(String value) {
            addCriterion("attr1 <>", value, "attr1");
            return (Criteria) this;
        }

        public Criteria andAttr1GreaterThan(String value) {
            addCriterion("attr1 >", value, "attr1");
            return (Criteria) this;
        }

        public Criteria andAttr1GreaterThanOrEqualTo(String value) {
            addCriterion("attr1 >=", value, "attr1");
            return (Criteria) this;
        }

        public Criteria andAttr1LessThan(String value) {
            addCriterion("attr1 <", value, "attr1");
            return (Criteria) this;
        }

        public Criteria andAttr1LessThanOrEqualTo(String value) {
            addCriterion("attr1 <=", value, "attr1");
            return (Criteria) this;
        }

        public Criteria andAttr1Like(String value) {
            addCriterion("attr1 like", value, "attr1");
            return (Criteria) this;
        }

        public Criteria andAttr1NotLike(String value) {
            addCriterion("attr1 not like", value, "attr1");
            return (Criteria) this;
        }

        public Criteria andAttr1In(List<String> values) {
            addCriterion("attr1 in", values, "attr1");
            return (Criteria) this;
        }

        public Criteria andAttr1NotIn(List<String> values) {
            addCriterion("attr1 not in", values, "attr1");
            return (Criteria) this;
        }

        public Criteria andAttr1Between(String value1, String value2) {
            addCriterion("attr1 between", value1, value2, "attr1");
            return (Criteria) this;
        }

        public Criteria andAttr1NotBetween(String value1, String value2) {
            addCriterion("attr1 not between", value1, value2, "attr1");
            return (Criteria) this;
        }

        public Criteria andAttr2IsNull() {
            addCriterion("attr2 is null");
            return (Criteria) this;
        }

        public Criteria andAttr2IsNotNull() {
            addCriterion("attr2 is not null");
            return (Criteria) this;
        }

        public Criteria andAttr2EqualTo(String value) {
            addCriterion("attr2 =", value, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2NotEqualTo(String value) {
            addCriterion("attr2 <>", value, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2GreaterThan(String value) {
            addCriterion("attr2 >", value, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2GreaterThanOrEqualTo(String value) {
            addCriterion("attr2 >=", value, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2LessThan(String value) {
            addCriterion("attr2 <", value, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2LessThanOrEqualTo(String value) {
            addCriterion("attr2 <=", value, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2Like(String value) {
            addCriterion("attr2 like", value, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2NotLike(String value) {
            addCriterion("attr2 not like", value, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2In(List<String> values) {
            addCriterion("attr2 in", values, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2NotIn(List<String> values) {
            addCriterion("attr2 not in", values, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2Between(String value1, String value2) {
            addCriterion("attr2 between", value1, value2, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr2NotBetween(String value1, String value2) {
            addCriterion("attr2 not between", value1, value2, "attr2");
            return (Criteria) this;
        }

        public Criteria andAttr3IsNull() {
            addCriterion("attr3 is null");
            return (Criteria) this;
        }

        public Criteria andAttr3IsNotNull() {
            addCriterion("attr3 is not null");
            return (Criteria) this;
        }

        public Criteria andAttr3EqualTo(String value) {
            addCriterion("attr3 =", value, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3NotEqualTo(String value) {
            addCriterion("attr3 <>", value, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3GreaterThan(String value) {
            addCriterion("attr3 >", value, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3GreaterThanOrEqualTo(String value) {
            addCriterion("attr3 >=", value, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3LessThan(String value) {
            addCriterion("attr3 <", value, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3LessThanOrEqualTo(String value) {
            addCriterion("attr3 <=", value, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3Like(String value) {
            addCriterion("attr3 like", value, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3NotLike(String value) {
            addCriterion("attr3 not like", value, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3In(List<String> values) {
            addCriterion("attr3 in", values, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3NotIn(List<String> values) {
            addCriterion("attr3 not in", values, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3Between(String value1, String value2) {
            addCriterion("attr3 between", value1, value2, "attr3");
            return (Criteria) this;
        }

        public Criteria andAttr3NotBetween(String value1, String value2) {
            addCriterion("attr3 not between", value1, value2, "attr3");
            return (Criteria) this;
        }

        public Criteria andAccountRecordStateIsNull() {
            addCriterion("accountRecordState is null");
            return (Criteria) this;
        }

        public Criteria andAccountRecordStateIsNotNull() {
            addCriterion("accountRecordState is not null");
            return (Criteria) this;
        }

        public Criteria andAccountRecordStateEqualTo(Integer value) {
            addCriterion("accountRecordState =", value, "accountRecordState");
            return (Criteria) this;
        }

        public Criteria andAccountRecordStateNotEqualTo(Integer value) {
            addCriterion("accountRecordState <>", value, "accountRecordState");
            return (Criteria) this;
        }

        public Criteria andAccountRecordStateGreaterThan(Integer value) {
            addCriterion("accountRecordState >", value, "accountRecordState");
            return (Criteria) this;
        }

        public Criteria andAccountRecordStateGreaterThanOrEqualTo(Integer value) {
            addCriterion("accountRecordState >=", value, "accountRecordState");
            return (Criteria) this;
        }

        public Criteria andAccountRecordStateLessThan(Integer value) {
            addCriterion("accountRecordState <", value, "accountRecordState");
            return (Criteria) this;
        }

        public Criteria andAccountRecordStateLessThanOrEqualTo(Integer value) {
            addCriterion("accountRecordState <=", value, "accountRecordState");
            return (Criteria) this;
        }

        public Criteria andAccountRecordStateIn(List<Integer> values) {
            addCriterion("accountRecordState in", values, "accountRecordState");
            return (Criteria) this;
        }

        public Criteria andAccountRecordStateNotIn(List<Integer> values) {
            addCriterion("accountRecordState not in", values, "accountRecordState");
            return (Criteria) this;
        }

        public Criteria andAccountRecordStateBetween(Integer value1, Integer value2) {
            addCriterion("accountRecordState between", value1, value2, "accountRecordState");
            return (Criteria) this;
        }

        public Criteria andAccountRecordStateNotBetween(Integer value1, Integer value2) {
            addCriterion("accountRecordState not between", value1, value2, "accountRecordState");
            return (Criteria) this;
        }

        public Criteria andCreateDateIsNull() {
            addCriterion("createDate is null");
            return (Criteria) this;
        }

        public Criteria andCreateDateIsNotNull() {
            addCriterion("createDate is not null");
            return (Criteria) this;
        }

        public Criteria andCreateDateEqualTo(Date value) {
            addCriterion("createDate =", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateNotEqualTo(Date value) {
            addCriterion("createDate <>", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateGreaterThan(Date value) {
            addCriterion("createDate >", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateGreaterThanOrEqualTo(Date value) {
            addCriterion("createDate >=", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateLessThan(Date value) {
            addCriterion("createDate <", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateLessThanOrEqualTo(Date value) {
            addCriterion("createDate <=", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateIn(List<Date> values) {
            addCriterion("createDate in", values, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateNotIn(List<Date> values) {
            addCriterion("createDate not in", values, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateBetween(Date value1, Date value2) {
            addCriterion("createDate between", value1, value2, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateNotBetween(Date value1, Date value2) {
            addCriterion("createDate not between", value1, value2, "createDate");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}